package com.logistics.system.service;

import com.logistics.system.domain.TransportPlans;

import java.math.BigDecimal;
import java.util.List;

/**
 * 运输计划Service接口
 * 
 * @author logistics
 * @date 2024-06-23
 */
public interface ITransportPlansService 
{
    /**
     * 查询运输计划
     * 
     * @param planId 运输计划主键
     * @return 运输计划
     */
    public TransportPlans selectTransportPlansByPlanId(Long planId);

    /**
     * 查询运输计划列表
     * 
     * @param transportPlans 运输计划
     * @return 运输计划集合
     */
    public List<TransportPlans> selectTransportPlansList(TransportPlans transportPlans);

    /**
     * 新增运输计划
     * 
     * @param transportPlans 运输计划
     * @return 结果
     */
    public int insertTransportPlans(TransportPlans transportPlans);

    /**
     * 修改运输计划
     * 
     * @param transportPlans 运输计划
     * @return 结果
     */
    public int updateTransportPlans(TransportPlans transportPlans);

    /**
     * 批量删除运输计划
     * 
     * @param planIds 需要删除的运输计划主键集合
     * @return 结果
     */
    public int deleteTransportPlansByPlanIds(Long[] planIds);

    /**
     * 删除运输计划信息
     * 
     * @param planId 运输计划主键
     * @return 结果
     */
    public int deleteTransportPlansByPlanId(Long planId);

    /**
     * 查询某个合同创建出来的计划的运输量总和
     *
     * @param contractId 合同id
     * @return 运输计划
     */
    public BigDecimal sumTransportVolume(Long contractId);

    /**
     *  根据运单的Id查询合同Id
     *
     * @param waybillId
     * @return
     */
    Long selectContractIdByWaybillId(Long waybillId);


}
